home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Environments / AppMkr151#2 / Libraries / MPW / AMLibraryC / DoScrap.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-09  |  1.3 KB  |  75 lines  |  [TEXT/MPS ]

  1. /* © 1988-91, Bowers Development Corp. */
  2. /* DoScrap.c */
  3.  
  4. #include <Types.h>
  5. #include <Quickdraw.h>
  6. #include <Controls.h>
  7. #include <Dialogs.h>
  8. #include <Events.h>
  9. #include <Lists.h>
  10. #include <Menus.h>
  11. #include <TextEdit.h>
  12.  
  13. #include "DoScrap.h"
  14.  
  15. #include <Scrap.h>
  16.  
  17. /* global vars: */
  18. Boolean                scrapDirty;
  19. OSType                scrapType;
  20.     
  21. static short        scrapCompare;
  22.  
  23. #pragma segment DoScrap
  24.     
  25. /*----------*/
  26. void ReadDeskScrap    ()
  27. {
  28.     typedef OSType    **OSTypeHandle;
  29.  
  30.     register PScrapStuff    scrap;    
  31.     long            scrapLength;
  32.     long            offset;
  33.     
  34.     scrap = InfoScrap ();
  35.     if (scrapCompare != scrap->scrapCount) {
  36.         if (scrap->scrapHandle == NULL) {
  37.             scrapType = '????';
  38.         } else {
  39.             scrapType = **((OSTypeHandle) scrap->scrapHandle);
  40.         }
  41.         TESetScrapLen (0);
  42.         if (GetScrap (NULL, 'TEXT', &offset) > 0) {
  43.             scrapLength = TEFromScrap ();
  44.         }
  45.         scrapCompare = scrap->scrapCount;
  46.     } /*if*/
  47. } /*ReadDeskScrap*/
  48.  
  49. /*----------*/
  50. void WriteDeskScrap    ()
  51. {
  52.     OSErr            errCode;
  53.     PScrapStuff        scrapPtr;
  54.  
  55.     if (scrapDirty) {
  56.         errCode = ZeroScrap ();
  57.         errCode = TEToScrap ();
  58.         scrapType = 'TEXT';
  59.         scrapDirty = false;
  60.         scrapPtr = InfoScrap ();
  61.         scrapCompare = scrapPtr->scrapCount;
  62.     } /*if*/
  63. } /*WriteDeskScrap*/
  64.  
  65. /*----------*/
  66. void InitScrap    ()
  67. {
  68.     PScrapStuff        scrapPtr;
  69.  
  70.     scrapDirty = false;
  71.     scrapPtr = InfoScrap ();
  72.     scrapCompare = scrapPtr->scrapCount + 1;
  73.     ReadDeskScrap ();
  74. } /*InitScrap*/
  75.